home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
UTIL
/
SYS
/
LINEEDIT
/
!LineEdit
/
History
< prev
next >
Wrap
Text File
|
1991-01-03
|
12KB
|
263 lines
Revision History of the Line Editor
-----------------------------------
Version 2.30 (January 1991)
---------------------------
* Fixed problem if recalled lines were longer than the maximum line length
(due to a new call to OS_ReadLine with a much smaller maximum line length
parameter). Lines are now correctly truncated when recalled, but are still
stored in their long form internally.
* OldKey$13 environmental variable is now removed when RETURN is pressed.
LineEditor$Dir is also removed when the module is *RMKill'ed.
* Changed the key combination used for 'clear and remove single line from
history' from Alt-Delete (which doesn't return a value from an INKEY)
to Shift-Insert (obscure, but I'm running out of keys !).
* Added some extra 'safety code' in case workspace pointer is corrupt.
* Split documentation further into a third file, "History" (this one), as well
as "!ReadMe" and "CompDoc".
Version 2.22 (October 1990) - Emergency bug-fix release
---------------------------
* Fixed RMA claim problem if, say, the *Configure RMASize is set to 32K, but
the *Configure EdSize is set to 63K and the Line Editor module is installed
outside of the Desktop. This would cause a system crash and a soft reset
actually performs a hard reset ! The fix involves checking for free RMA
if outside the Desktop (if inside, the Wimp muscles the RMA from other
sources) and generating an error if not enough is available prior to the
claim.
* Fixed problems with *Configure EdSize on-the-fly changes that exceeded the
RMA space currently available. If this occurs, then the Line Editing is
disabled until:
(1) a *RMTidy. This may still not free up enough RMA space for the claim.
(2) a *Configure EdSize to a lower value. This is the best option to take.
(3) a soft reset. This is likely to still generate an error during startup.
* Added new Alt-delete feature which removes a single line (the one currently
recalled) from the command history and also clears the line from the screen.
* Fixed a flag-returning bug - older versions would affect flags other than
the carry flag when ESCAPE was pressed: V2.22 now behaves correctly.
* Now saves and restores the value of function key 13 (Insert key) before and
after each line edit. This is done tackily at the moment, but will be
improved in a later release.
* BASIC front-end only kills module if its (and not the Task Manager's) Quit
menu option is selected. It will also avoid killing the module if the Shift-
Ctrl-f12 mechanism (aka Task Manager Desktop Exit) is used.
Version 2.21 (October 1990)
---------------------------
* Added *Configure EdCursor command to allow cursor shape customisation.
* *Configure EdSize now takes its parameter in kilobytes rather than the
totally non-standard "6502 pages" (i.e. 256 bytes) up to a maximum of 63K.
The default EdSize value is now 4 kilobytes rather than V2.20's 2K.
* Insert key now reverts back to being the toggle for Insert and Overtype
mode (V2.20 used Home instead). This was achieved by using the undocumented
fact that Insert is actually function key 13...
* Insert key toggles shape of cursor between underline and block.
* Changed my mind and included a *EraseHistory command after all because it
is so easy to write !
* Adjust BASIC front-end options to cope with new features. The menu is now
"peristent" in accordance with Acorn guidelines. Also fixed a bug whereby
a second run (whilst the first copy was still installed) of the front-end
would undefine LineEditor$Dir and kill the module, when it shouldn't.
* Fixed soft-reset overkill - a soft reset no longer re-initialises the
module workspace and it leaves the command history intact.
Version 2.20 (May 1990)
-----------------------
* The Line Editor now installs an icon on the icon bar if it is started from
inside the Desktop (it can still, however, be started from the command line).
The menu associated with the icon allows the EdLines and EdSize values to
be configured dynamically. This front-end is a separate BASIC program called,
shock horror, "!RunImage".
* Apart from the above front-end (which is clearly designed for RISC OS),
support is still miraculously maintained by the module for Arthur 1.20.
* 'Improved' the problems with !Edit's and Twin's Task Windows. I had
to change the INKEY(0) scan back to a GET because !Edit/Twin intercepted
OS_ReadC/OS_ReadLine but NOT OS_Byte 129 !! Because of this, I am unable to
scan for the Insert key for switching Insert/Overtype mode and have reverted
to the Home key instead. Yes, I know it's far less intuitive, but tell Acorn
to make Insert return an ASCII code from GET (with *FX 4,1 active) - it's
the only one of that cluster of 6 keys that DOESN'T !!
* Changed the minimum, maximum and default EdLines and EdSize values (see
Memory Usage table above).
* Made *Configure EdLines and *Configure EdSize change the command history
buffer sizes dynamically if a new (different) value is specified. This also
clears the command history buffer as a side-effect.
* Shift-Delete added (deletes the character directly under the cursor and
'sucks' the rest of the line to the left by one character).
* Ctrl-Delete added (clears the command history buffer and erases the current
line) to simulate VAX/VMS's RECALL/ERASE, but on a key for emergencies
(the only reason you'd want to clear the buffer is to hide it from prying
eyes). Surrounded yet more SWI calls by the 'interrupt padding' code to
cope with this.
NOTE: Since *RMReInit LineEditor, *Configure EdLines, *Configure EdSize and
Ctrl-Delete can all clear the command history buffer, a *EraseHistory
command (or something similar) is not needed.
* Added a *Recall command to list the entire contents of the command history
buffer. No, you can't specify an individual history line by number because
the list numbering would be shifted by 1 when you press RETURN !
* The *EdStatus command has been improved to show a table of figures rather
than (incomplete) English prose.
* Split the documentation between this file ("!ReadMe") and "CompDoc" (filename
completion).
* Finally documented the various * commands in the module in this file...
Version 2.10 (April 1990)
-------------------------
* Source code released publicly for the first time. Includes a cut-down version
of the Line Editor in BASIC to show how to call the new filename completion
routines from your own code.
* Filename completion using the Tab key has been added due to popular demand.
This was a major upgrade (hence the jump in version numbering) and hence
has been included in a separate source file.
* The code is now 'Supervisor prompt aware' for both RISC OS and Arthur 1.20.
* SWI calls inside the trapped OS_ReadLine routine now use the padding
code familiar to those who've written routines to intercept vectors.
This should make the code more stable, even though it still doesn't
solve problems with !Edit's Task Window.
* Module compatibilty with Arthur 1.20 maintained (including the GOS 1.20
bug fix).
* Leading tildes are stripped off unmatched recall lines before execution.
* RISC OS application directory supplied with a trivial !Run file and
an application icon.
Version 2.00
------------
* Service call &27 (End of a machine reset) has been checked to allow a
nice startup message to appear in the same way as ADFS and BASIC. The
more useful side-effect is that the Line Editor REMAINS ACTIVE after a
soft reset (at last, I hear you cry...).
* The following maximum line lengths are used by Acorn :
Arthur 1.20 RISC OS
BASIC command line/INPUT 238 238
*GOS supervisor 240 255
Desktop + f12 >> * prompt N/A 256
Because earlier versions only used a byte to hold the maximum length,
the 256 value would be moduloed to 0 and no characters could be entered !
I now use 4 bytes to hold the maximum length, which should be more than
sufficient. Ironically, OS_CLI doesn't like lines > 255 anyway, so you
get a 'too long' message if you type all 256 chars...
* Since the Line Editor was inspired by the VAX/VMS DCL line editor, many
people pointed out that pressing down arrow at the latest command should
generate a blank line (and ditto for up arrow at the oldest command). This
has been implemented and I've decided that I may as well let the recall
wrap around as well (not an original DCL feature, but I like it).
Version 1.03 - Emergency bug-fix release
------------
* Changes to V1.01 meant that inline strings were no longer aligned to the
nearest word in V1.02 causing an 'Address exception' with the *Status
command. The addition of ALIGN commands (which should have been there in
the first place) has cured the problem. Thanks to Gary C. Bartlett for
spotting this rather elementary mistake on my part.
Version 1.02
------------
* Added ~<substring> construct. Please moan if you don't like it.
Version 1.01
------------
* Command history buffer management much improved. You can now get down to
'0 bytes free' in the *EdStatus command - something you couldn't do in V1.00.
The bytes free has now been 'pluralised' i.e. it says 'There is 1 byte free'.
* Overtype mode added for people who like using it (who does ?). The default
mode for each line is insert mode and you have to press Insert to get into
overtype mode...which is the way it should be.
* Character read routine now uses INKEY(0) instead of GET because I needed to
scan (using INKEY(-62)) for the INSERT key, which NEVER returns an ASCII
code from GET...
* Line Editor now beeps (wow !) if the current line is at its maximum length
and further characters are typed.
* Ctrl-Cursor Up and Ctrl-Cursor Down commands added - they display the oldest
and newest command lines respectively. Yes, I confess, this is a poor
solution to the problem of *RECALL [<numbered history line>] (VAX/VMS has a
RECALL command which isn't put into the history buffer - I don't think this
can be done with my Line Editor).
Version 1.00
------------
* First version released into the Public Domain via the NEWS system and thus
set a precedent for being the first EVER Archimedes binary posted up to the
eunet.micro.acorn newsgroup. The big question is : will it be the ONLY ONE
EVER ? C'mon all you budding ARM (or even BASIC...) programmers out there
who are reading eunet.micro.acorn - post your stuff up NOW...
* Written, for the first time, as a relocatable module (much more useful !),
so now doesn't encroach on application workspace.
* Used two bytes of battery-backed RAM to store its configuration.
* *Help, *Configure and *Status now fully supported.
* New command *EdStatus added to display currently active configuration.
* Very minor bug in Pre-release Version fixed (cursor now goes to the end of
the input line before a CR-LF is output).
* Cleaned up some slight errors in the *Help LineEditor text.
* Fixed Arthur Supervisor bug.
Pre-release Version V1.0
------------------------
* 'Normal' ARM code program that was *RUN and resided at &8E000 (I think -
it was 'hackable' because the code was relocatable even then).
* Very minor bug - if a line wrapped onto a second or later line, then moving
the cursor back onto the first line and pressing RETURN would result in just
a CR-LF being output at the cursor position - hence bringing up the next
prompt (e.g. BASIC's ">" or Arthur's "*") on the wrong line.
* The location of command history buffer (and the program itself) was suspect
in the extreme - just plonked straight after the Line Editor program itself.